package action;

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Set;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import ejbs.Facade;


@SuppressWarnings(value = { "all" })


public class BusinessDelegate
{
	
	private static BusinessDelegate instance;
	
	private Producto productoActualSeleccionado;
	
	private SolicitudCotizacion ultimaSolicitudCotizacion;
	

	public static BusinessDelegate getInstance()
	{
		if (instance == null)
		{
			instance = new BusinessDelegate();
		}		
		return instance;		
	}
	
	public BusinessDelegate() {
		// TODO Auto-generated constructor stub
	}
	
	public Producto obtenerProductoPorCodigo(String codigo)
	{
		//Pedirle al facade el prodcuto
		
		if(codigo.equals("12345"))
		{		
			Producto prodcuto = new Producto();
			prodcuto.setCaracteristica("caracteristca del producto");
			prodcuto.setCod_propietario("codigo Propietario");
			prodcuto.setCodigo(codigo);
			prodcuto.setMarca("Marca del Poducto");
			prodcuto.setOrigen("China");
			prodcuto.setTipo("tipo del producto");
			
			this.productoActualSeleccionado = prodcuto;
			
			return prodcuto;
		}	
		
		
		
		
		
		return null;
		
		
	}	

	public ArrayList<ItemACotizar> agregarUltimoProductoASolicitudDeCotizacion(int cantidad)
	{
			
		if(ultimaSolicitudCotizacion ==null)
		{
			ultimaSolicitudCotizacion = new SolicitudCotizacion();			
		}
		
		ItemACotizar itemAcotizar = new ItemACotizar();
		itemAcotizar.setCantidad(cantidad);
		itemAcotizar.setCodigo(productoActualSeleccionado.getCodigo());
		
		ultimaSolicitudCotizacion.getItemsACotizar().add(itemAcotizar);	
		
		Set<ItemACotizar> itemsACotrizarSet = ultimaSolicitudCotizacion.getItemsACotizar();
		
		ArrayList<ItemACotizar> itemsACotrizarList = new ArrayList<ItemACotizar>();
		
		for (ItemACotizar item : itemsACotrizarSet) 
		{
			itemsACotrizarList.add(item);
			  
		}
		
		return itemsACotrizarList;
		
	}
	
	public void testFacade() throws NamingException
	{
		String naming= "TPEAR/FacadeBean/remote";
		Hashtable props=new Hashtable();
		props.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
		props.put(InitialContext.PROVIDER_URL, "jnp://127.0.0.1:1099");
		InitialContext ic = new InitialContext(props);
		Facade f = (Facade)ic.lookup(naming);
		
		
		
	/*	// 0 - Crear algunos productos
		crearProductosDePrueba(f);
		pruebaObtenerProducto(f);
		
		// 1 - Solicitar Cotizacion (sincronico)
		pruebaSolicitarCotizacion(f);
		pruebaObtenerSolicitudesDeCotizacion(f);
		pruebaObtenerCotizaciones(f);*/
	}
	
	
	
	

}
